<?php
//Ultima verificacion: 13-10-2014 ; 21-11-2014 ; 20-02-2015
class M_directivo extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los directivos existentes menos los borrados (-1)
	function buscar(){
		$consulta = $this->db->query("SELECT persona.*, directivo.idDirectivo, directivo.idCargoDirectivo, directivo.estado AS estadoDirectivo,
											(SELECT nombre FROM cargodirectivo WHERE cargodirectivo.idCargoDirectivo=directivo.idCargoDirectivo AND cargodirectivo.estado<>-1 LIMIT 1) AS cargoDirectivo,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(directivo.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(directivo.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, directivo
									  WHERE persona.idPersona=directivo.idPersona AND
										    persona.estado=1 AND
											directivo.estado<>-1
									  ORDER BY persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
			
	//Este metodo se utiliza cuando queremos obtener los directivos activos
	//Este metodo se utiliza para mostrar los directores activos, y por ende, el cargo si o si debe ser existente para mostrar su nombre.
	function buscarActivos(){
		$consulta = $this->db->query("SELECT persona.*, directivo.idDirectivo, directivo.idCargoDirectivo, directivo.estado AS estadoDirectivo,	cargodirectivo.nombre AS cargoDirectivo,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(directivo.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(directivo.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, directivo, cargodirectivo
									  WHERE persona.idPersona=directivo.idPersona AND 
											directivo.idCargoDirectivo=cargodirectivo.idCargoDirectivo AND 
										    persona.estado=1 AND 
											directivo.estado=1 AND 
											cargodirectivo.estado<>-1
									  ORDER BY cargodirectivo.orden ASC, persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
			
	//Este metodo se utiliza para eliminar un directivo
	function eliminar($idDirectivo=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `directivo`
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `directivo`.`idDirectivo` = " . $this->db->escape($idDirectivo) . " LIMIT 1");
		return($this->db->affected_rows());
	}
			
	//Este metodo se utiliza para crear un directivo
	function crear($idPersona=null, $idCargoDirectivo=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `directivo` (`idDirectivo`,`idPersona`,`idCargoDirectivo`,`estado`,`fechaCreacion`,`idCreador`) VALUES 
											      (NULL,".$this->db->escape($idPersona).",".$this->db->escape($idCargoDirectivo).",".$this->db->escape($estado).",now(),".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza en el formulario para modificar un directivo.
	function get($idDirectivo=null){
		$consulta = $this->db->query('SELECT directivo.*, persona.apellido, persona.nombre
									  FROM directivo, persona
									  WHERE directivo.idPersona=persona.idPersona AND 
											directivo.estado<>-1 AND 
											persona.estado<>-1 AND 
											directivo.idDirectivo='.$this->db->escape($idDirectivo).' 
									  LIMIT 1');
		return($consulta);
	}
		
	//Este metodo se utiliza en el formulario para modificar un directivo.
	function get2($idPersona=null){
		$consulta = $this->db->query('SELECT directivo.*, persona.apellido, persona.nombre
									  FROM directivo, persona
									  WHERE directivo.idPersona=persona.idPersona AND 
											directivo.estado<>-1 AND 
											persona.estado<>-1 AND 
											directivo.idPersona='.$this->db->escape($idPersona).' 
									  LIMIT 1');
		return($consulta);
	}
	
	//Este metodo se utiliza cuando inicias sesion para obtener el id del directivo
	function getActivo($idPersona=null){
		$consulta = $this->db->query('SELECT directivo.*, persona.apellido, persona.nombre
									  FROM directivo, persona
									  WHERE directivo.idPersona=persona.idPersona AND 
											directivo.estado=1 AND 
											persona.estado=1 AND
											directivo.idPersona='.$this->db->escape($idPersona).' 
									  LIMIT 1');
		return($consulta);
	}
	
	//Este metodo se utiliza para modificar un directivo
	function modificar($idDirectivo=null, $idCargoDirectivo=null, $estado=null){
		$consulta = $this->db->query("UPDATE `directivo` 
									 SET `idCargoDirectivo` = ". $this->db->escape($idCargoDirectivo) .",
										 `estado` = ". $this->db->escape($estado) ."
							         WHERE `directivo`.`idDirectivo`=".$this->db->escape($idDirectivo)." LIMIT 1");
		return($this->db->affected_rows());
	}
}
?>